#ifndef __VIMOCK_MOCK_MANAGER_REPLAYING_STATE__
#define __VIMOCK_MOCK_MANAGER_REPLAYING_STATE__

#include "mock_manager_state.hpp"
#include "behavior.hpp"
#include "behaviors_replayer.hpp"

namespace vimock {
class mock_manager_replaying_state : public _mock_manager_state {
public:
	mock_manager_replaying_state(behavior_vector behaviors);
	virtual ~mock_manager_replaying_state();
	virtual object invoked(invocation inv);
	virtual void record_value_to_return(object value_to_return);
	virtual void record_exception_to_throw(exception_thrower ex_to_throw);
	virtual mock_manager_state replay();
	virtual void verify();
private:
	behaviors_replayer replayer;
};
}

#endif //__VIMOCK_MOCK_MANAGER_REPLAYING_STATE__ 
